Large scale printing, particularly within a large corporation, can generally be divided into two classes: legacy printing and distributed printing. In legacy printing, the volume of pages printed in a single print job is typically very large, often on the order of a million pages and the source of the printing is typically a main frame. Typically a relatively small number of high volume printers are used to perform legacy printing. Legacy printing could include, for example, the printing of customer invoices by a telephone or other utility company. Distributed printing is typically done by business applications or users of the business applications. The volume of pages being printed in a single job is typically relatively small compared to legacy printing, often on the order of tens of pages or less. The sources of the print jobs are typically large in number and may be disparate in nature. Consequently, a large number of low volume printers are typically used to perform distributed printing. Distributed printing includes a variety of printing typically performed by employees of an enterprise in the course of the day-to-day business of the enterprise. Examples of distributed printing include, but are not limited to, printing of accounting information, local payroll data or checks, palette tickets for attachment to crates being shipped, bay diagrams, or other routine printing for the particular enterprise that is relatively low volume.
FIG. 1 depicts a conventional system 20 that can perform distributed printing in an enterprise. The system 20 includes conventional print servers 26 and 34, clients 22 and 24, and printers 28, 30, 32, and 36, 38, and 40 which correspond to servers 26 and 34, respectively. Although depicted as being connected to the print servers 26 and 34, the printers 28, 30, 32, 36, 38, and 40 may be directly connected to the network. However, the printers 28, 30, and 32 and the printers 36, 38, and 40 are associated with and accessed through the conventional print servers 26 and 34, respectively. Although depicted as a simple network, the conventional components 22, 24, 26, 28, 30, 32, 34, 36, 38, and 40 may be widely spaced geographically and may not represent all of the components for a large scale enterprise. For example, in a global corporation, the conventional print server 26 and printers 28, 30, and 32 may reside in Europe, while the conventional print server 34 and printers 36, 38, and 40 reside in the United States. Furthermore, although only a few components 22, 24, 26, 28, 30, 32, 34, 36, 38, and 40 are shown, there may be a large number of each for a large enterprise. Thus, the system 20 might include tens of thousands of clients, printers, and/or servers.
In order for a client or user of the system 20 to perform distributed printing on a particular printer 28, 30, 32, 36, 38, or 40, a print job is routed through the corresponding print server 26 or 34. For example, if a user of the client 22 desires to print on the printer 32, the client 22 would send the print job to the conventional print server 26, which controls and would schedule the print job for the printer 32. In order to control and schedule print jobs, the conventional print server 26 might internally store information such as the identity and attributes of the corresponding printers 28, 30, and 32, as well as the authorized users such as clients 22 and 24. Such information may take the form of linked lists and tables written to disk. The conventional print server 26 queries its internally stored information and, based upon the attributes of the print job provided, can schedule the print job to one of the printers 28, 30 or 32. The conventional print server 26 may also track the status of the print job or the printers 28, 30, and 32 and write this information in a file stored on disk.
Although the conventional system 20 functions, one of ordinary skill in the art will readily recognize that as the number of components (printers, clients, print servers, and the like) increase, the manageability and performance of the system degrade significantly. For example, in order to print, a user typically manually determines what printer 28, 30, 32, 36, 38, or 40 as well as what print server 26 or 34 to use. This may be quite time consuming as the number of printers and print servers for the system 20 grows. Furthermore, because the print job is sent to a specified printer 28, 30, 32, 36, 38, or 40, in the event of a failure, a manual reprint may be required. The manual reprint may result is wasted time and resources. In addition, data used in tracking of the use of a particular printer 28, 30, 32, 36, 38, or 40, supplies used by the printers 28, 30, 32, 36, 38, and 40 and the status of print jobs is relatively difficult to convert into a form that can be analyzed to determine the efficiency of the system 20. This is particularly true as the number of components of the system 20 increases. Consequently, management of printing equipment such as printers 28, 30, 32, 36, 38, or 40 and supplies may be especially difficult to accomplish for a large enterprise having a large number of printers.
In addition, because the printers 28, 30, and 32 and the printers 36, 38, and 40 are accessed through the print servers 26 and 34, respectively, printing on a particular printer 28, 30, or 32 and 36, 38, or 40 may become impossible if the corresponding print server 26 and 34 is inoperable. Although the system 20 might allow a switch from one print server 26 or 34 to the other print server 34 or 26, respectively, such a switch is often time consuming. Furthermore, in the conventional system 20, the clients 22 and 24 and their users are typically associated with specific print server(s) 26 or 34 that is in proximity to the client 22 or 24. A user of the client 22 or 24 may thus be unable to access another print server 34 or 26. For example, in a large enterprise, the print servers 26 and 34 may be widely separated geographically. In such a case, users of one print server 26 or 34 may not have visibility or other access to the other print server 34 or 26, respectively. Thus, a user in one location of an enterprise may not be able to print to a printer in another, desired location of the enterprise.
Accordingly, what is needed is a system and method for improving distributed printing, particularly for a large enterprise. The present invention addresses such a need.